package cn.edu.hbsi.web.controller;

import cn.edu.hbsi.domain.dto.UserLoginDTO;
import cn.edu.hbsi.domain.dto.UserRegistDTO;
import cn.edu.hbsi.domain.result.Result;
import cn.edu.hbsi.domain.vo.UserLoginVO;
import cn.edu.hbsi.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 用户模块
 */
@RestController
@RequestMapping("/user")
@Api(tags = "用户模块相关接口")
@Slf4j
@CrossOrigin
public class UserController
{
    @Autowired
    private UserService userService;

    /**
     * 用户登录
     * @param userLoginDTO 用户登录信息
     * @return
     */
    @PostMapping("/login")
    @ApiOperation("用户登录")
    public Result login(@RequestBody UserLoginDTO userLoginDTO){
        log.info("用户登录");
        return userService.login(userLoginDTO);
    }

    /**
     * 获取用户信息
     * @param token
     * @return
     */
    @GetMapping("/getUserInfo")
    @ApiOperation("获取用户信息")
    public Result getUserInfo(@RequestHeader("token") String token){
        log.info("获取用户信息");
        return userService.getUserInfo(token);
    }

    /**
     * 注册用户名检查
     * @param username
     * @return
     */
    @PostMapping("/checkUserName")
    @ApiOperation("注册用户名检查")
    public Result checkUserName(@RequestParam("username") String username){
        log.info("注册用户名检查");
        return userService.checkUserName(username);
    }

    /**
     * 用户注册
     * @param userRegistDTO
     * @return
     */
    @PostMapping("/regist")
    @ApiOperation("用户注册")
    public Result regist(@RequestBody UserRegistDTO userRegistDTO){
        log.info("用户注册");
        return userService.regist(userRegistDTO);
    }
}
